var Workport = Workport || {};

Workport.AppDomain = {
	RegisterRequest : function(){
		this.appId;
		this.title;
		this.description;
		this.image;
		this.url;
		this.mode;			//(Save/Submit)
		this.modified;		//bool(true/false)
	},
	RegisterResponse : function(){
		this.code;
		this.message;
	},
	HomeRequest : function(){
		this.offset;  // Represent the Starting Index
		this.count;   // Represent the Last Index
		this.filterBy;	//Optional
		this.orderBy;	//Optional
		this.mode;    // ALL/Limited
	},
	HomeResponse : function(){
		this.code;
		this.message;
		this.homes = [
		     function(){
		    	 this.appId;
		    	 this.title;
		    	 this.image;
		    	 this.url;
		    	 this.bookmarked;
		    	 this.type;
		     }
		];
	},
	AppRequest : function(){
		this.offset;  // Represent the Starting Index
		this.count;   // Represent the Last Index
		this.filterBy;
		this.orderBy;
		this.mode;    // ALL/Limited
	},
	AppResponse : function(){
		this.code;
		this.message;
		this.apps = [
		     function(){
		    	 this.appId;
		    	 this.title;
		    	 this.image;
		    	 this.url;
		    	 this.bookmarked;
		    	 this.description;
		    	 this.likesCount;
		    	 this.ratings;
		    	 this.createdBy;
		    	 this.launchCount;
		    	 this.liked;
		    	 this.type;
		     }
		];
	},
	SearchHomeRequest : function(){
		this.offset;	//Manadatory
		this.count;		//Manadatory
		this.orderBy;	//Optional
		this.key;		//Search string
		this.mode;		//Specifies which mode to use for search ( Contains/StartsWith)
	},
	SerachHomeResponse : function(){
		this.code;
		this.message;
		this.homes = [
		     function(){
		    	 this.appId;
		    	 this.title;
		    	 this.image;
		    	 this.url;
		    	 this.bookmarked;
		    	 this.type;
		     }
		];
	},
	SearchAllRequest : function(){
		this.offset;	//Manadatory
		this.count;		//Manadatory
		this.orderBy;	//ASC/DESC
		this.key;		//Search string
		this.mode;		//Specifies which mode to use for search ( Contains/StartsWith)
	},
	SerachAllResponse : function(){
		this.code;
		this.message;
		this.homes = [
		     function(){
		    	 this.appId;
		    	 this.title;
		    	 this.image;
		    	 this.url;
		    	 this.description;
		    	 this.likesCount;
		    	 this.ratings;
		    	 this.createdBy;
		    	 this.launchCount;
		    	 this.liked;
		    	 this.bookmarked;
		    	 this.type;
		     }
		];
	},
	DetailRequest : function(){
		this.appId;
	},
	DetailResponse : function(){
		this.code;
		this.message;
		this.appId;
		this.title;
		this.image;
		this.url;
		this.description;
		this.likesCount;
		this.ratings;
		this.createdBy;
		this.launchCount;
		this.liked;
		this.bookmarked;
	},
	PendingCountRequest : function(){
	},
	PendingCountResponse : function(){
		this.code;
		this.message;
		this.response;
	},
	GetEditRequest : function(){
		this.pageNo;	//Current page number
		this.pageSize;	//Max number of apps that can be shown in the page
		this.sort;		//Sort direction (ASC/DESC)
	},
	GetEditResponse : function(){
		this.code;
		this.message;
		this.apps = [
		     function(){
		    	 this.appId;
		    	 this.status;
		    	 this.title;
		    	 this.modifiedDate;
		    	 this.version;
		     }
		];
	},
	EditDetailRequest : function(){
		this.appId;
	},
	EditDetailResponse : function(){
		this.code;
		this.message;
		this.appId;
		this.title;
		this.description;
		this.image;
		this.url;
	},
	ActionRequest : function(){
		this.appId;
		this.action;	//(Delete/Approve/Reject)
	},
	ActionResponse : function(){
		this.code;
		this.message;
	},
	PendingApprovaRequest : function(){
		this.pageNo;		//Page number
		this.pageSize;		//Number of apps can be placed in the page
		this.sort;			//Order of the Apps (ASC/DESC)
	},
	PendingApprovaResponse : function(){
		this.code;
		this.message;
		this.apps = [
		     function(){
		    	 this.appId;
		    	 this.title;
		    	 this.author;
		    	 this.submitDate;
		    	 this.url;
		     }
		];
	},
	FavouriteRequest : function(){
		this.appId;
	},
	FavouriteResponse : function(){
		this.code;
		this.message;
		this.favourite;
	},
	SaveLikeRequest : function(){
		this.appId;
	},
	SaveLikeResponse : function(){
		this.code;
		this.message;
		this.totalLikes;
		this.liked;
	},
	LikeUserRequest : function(){
		this.appId;
	},
	LikeUserResponse : function(){
		this.code;
		this.message;
		this.users = [
		     function(){
		    	 this.userName;
		    	 this.userImage;
		     }
		];
	},
	LaunchCountRequest : function(){
		this.appId;
	},
	LaunchCountResponse : function(){
		this.code;
		this.message;
		this.launchCount;
	},
	GetFeedbackRequest : function(){
		this.appId;
	},
	GetFeedbackResponse : function(){
		this.code;
		this.message;
		this.feedbacks = [
		     function(){
		    	 this.userName;
		    	 this.userImage;
		    	 this.feedback;
		    	 this.ratings;
		    	 this.receivedOn;
		     }
		];
	},
	SaveFeedbackRequest : function(){
		this.appId;
		this.feedback;
		this.ratings;
		this.timeofPost;
	},
	SaveFeedbackResponse : function(){
		this.code;
		this.message;
		this.count;
	},
	StatusRequest : function(){
	},
	StatusResponse : function(){
		this.code;
		this.message;
		this.states = [
		     function(){
		    	 this.status;
		    	 this.count;
		     }
		];
	}
}